package opencm.swingui;

import java.awt.GridLayout;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;

import opencm.Medico;
import opencm.RepositorioMedico;
import opencm.RepositorioPaciente;
import opencm.RepositorioPlanoSaude;

import opencm.*;

public class Listagem extends JFrame {

	
	private static final long serialVersionUID = 1690390115215358854L;
	private JList listaDeMedicos;
	private JList listaDePacientes;
	private JList listaDePlanos;
	
	RepositorioMedico medico = Run.repositorioMedico;
	RepositorioPaciente paciente = Run.repositorioPaciente;
	RepositorioPlanoSaude plano = Run.repositorioPlanoSaude;
	
	ArrayList<PlanoSaude> listaPlanos = new ArrayList<PlanoSaude>();
	ArrayList<Medico> listaMedico = new ArrayList<Medico>();
	ArrayList<Paciente> listaPaciente = new ArrayList<Paciente>();
	
	public Listagem(){
		
		GridLayout grid = new GridLayout(3,1,10,10);
		
		setLayout(grid);
		setTitle("Visualizar Listas");
		
		setSize(500,500);
		listaDeMedicos = new JList(medicoToArray());
		listaDeMedicos.setVisibleRowCount(10);
		listaDeMedicos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		
		listaDePacientes = new JList(pacienteToArray());
		listaDePacientes.setVisibleRowCount(10);
		listaDePacientes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		
		listaDePlanos = new JList(planosToArray());
		listaDePlanos.setVisibleRowCount(10);
		listaDePlanos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		
		JScrollPane pane1 = new JScrollPane(listaDeMedicos);
		JScrollPane pane2 = new JScrollPane(listaDePacientes);
		JScrollPane pane3 = new JScrollPane(listaDePlanos);
		
		add(pane1);
		add(pane2);
		add(pane3);
		
		setVisible(true);

		
	}
	
	private String[] planosToArray(){
		listaPlanos.addAll(plano.getItens());
		String[] retorno = new String[listaPlanos.size()];
		
		for (int i = 0; i < listaPlanos.size();i++){
			retorno[i] = listaPlanos.get(i).getNome();
		}
		return retorno;
	}
	public String[] pacienteToArray(){
		List<Paciente> lista = new ArrayList<Paciente>();
	
		lista.addAll(paciente.getItens());
		
		String[] retorno = new String[lista.size()];
		
		for (int i = 0; i < lista.size();i++){
			retorno[i] = "Nome: " + lista.get(i).getPerfil().getNome() + "----CPF: " + lista.get(i).getPerfil().getCpf();
		}
		return retorno;
	}
	public String[] medicoToArray(){
		List<Medico> lista = new ArrayList<Medico>();
	
		lista.addAll(medico.getItens());
		
		String[] retorno = new String[lista.size()];
		
		for (int i = 0; i < lista.size();i++){
			retorno[i] = "Nome: " + lista.get(i).getPerfil().getNome() + "----CPF: " + lista.get(i).getPerfil().getCpf();
		}
		return retorno;
	}
}
